|
In computer science and operations research, harmony search (HS) is a phenomenon-mimicking algorithm (also known as metaheuristic algorithm, soft computing algorithm or evolutionary algorithm) inspired by the improvisation process of musicians proposed by Zong Woo Geem in 2001. In the HS algorithm, each musician (= decision variable) plays (= generates) a note (= a value) for finding a best harmony (= global optimum) all together. Proponents claim the following merits: * HS does not require differential gradients, thus it can consider discontinuous functions as well as continuous functions. * HS can handle (discrete variables ) as well as continuous variables. * HS does not require initial value setting for the variables. * HS is free from divergence. * HS may escape local optima. * HS may overcome the drawback of GA's building block theory which works well only if the relationship among variables in a chromosome is carefully considered. If neighbor variables in a chromosome have weaker relationship than remote variables, building block theory may not work well because of crossover operation. However, HS explicitly considers the relationship using ensemble operation. * HS has a novel stochastic derivative applied to discrete variables, which uses musician's experiences as a searching direction. * Certain HS variants do not require algorithm parameters such as HMCR and PAR, thus novice users can easily use the algorithm. ==Basic harmony search algorithm== Harmony search tries to find a vector which optimizes (minimizes or maximizes) a certain objective function. The algorithm has the following steps: Step 1: Generate random vectors () as many as (harmony memory size), then store them in harmony memory (HM). : Step 2: Generate a new vector . For each component , * with probability (harmony memory considering rate; 0 ≤ ≤ 1), pick the stored value from HM: * with probability , pick a random value within the allowed range. Step 3: Perform additional work if the value in Step 2 came from HM. * with probability (pitch adjusting rate; 0 ≤ ≤ 1), change by a small amount: or for discrete variable; or for continuous variable. * with probability , do nothing. Step 4: If is better than the worst vector in HM, replace with . Step 5: Repeat from Step 2 to Step 4 until termination criterion (e.g. maximum iterations) is satisfied. The parameters of the algorithm are * = the size of the harmony memory. It generally varies from 1 to 100. (typical value = 30) * = the rate of choosing a value from the harmony memory. It generally varies from 0.7 to 0.99. (typical value = 0.9) * = the rate of choosing a neighboring value. It generally varies from 0.1 to 0.5. (typical value = 0.3) * = the amount between two neighboring values in discrete candidate set. * (fret width, formerly bandwidth) = the amount of maximum change in pitch adjustment. This can be (0.01 × allowed range) to (0.001 × allowed range). It is possible to vary the parameter values as the search progresses, which gives an effect similar to simulated annealing. Parameter-setting-free researches have been also performed. In the researches, algorithm users do not need tedious parameter setting process. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「harmony search」の詳細全文を読む スポンサード リンク
|